var Module_Receive = function(options){

    this.module = options.module;
    this.controller = options.controller;
    this.urlPath = baseUrl + '/' + this.module + '/' + this.controller;
    this.initialize();
    this.sendding = false;
    this.obGridView = $("#jqxgrid");
}

Module_Receive.prototype.initialize = function(){
    var self = this;
    $("#refresh").unbind('click').click(function(){
        self.obGridView.jqxGrid('updatebounddata','filter');
    });
    $("#addrow").unbind('click').click(function(){self.add()});
    $("#editrow").unbind('click').click(function(){self.edit()});
    $("#deleterow").unbind('click').click(function(){self.delete()});

    $("#assign").unbind('click').click(function(){self.assign()});
    $("#process").unbind('click').click(function(){self.process()});
}
Module_Receive.prototype.initializeJqxGrid = function(){
    

}

$.extend(Module_Receive.prototype, {
    _eButton: function(){
        var self = this;
        $("#btnsave,#btnsave_next").unbind('click').click(function(){
            if($('#frmUpdate')[0].checkValidity()){
                self.save($(this).attr('action'));
                return false;
            }
        });
        $("#clsaveassign").unbind('click').click(function(){
            if($('#frmUpdate')[0].checkValidity()){
                self.saveassign();
                return false;
            }
        });
        
        // but_back_assignwait

    },
    _clearForm: function(ID){
        $('form#'+ID).find('input[type=text], textarea').val('');
    },
    _eForm: function(){
        $('#ReceivedDate, #SendDate').datepicker({
            changeMonth: true,
            gotoCurrent: true,
            minDate: new Date(2010, 1 - 1, 1),
            maxDate:'today',
            changeYear: true
        });
        
        $('#AppointedDate').datepicker({
            changeMonth: true,
            gotoCurrent: true,
            minDate:'today',
            changeYear: true
        });
        $('#ReceivedDate').change(function(){
             var year = $(this).datepicker('getDate').getFullYear();
             $('#Year').val(year);
        })
    },
} );
/*
 * Them moi
 * Creater : Truongdv
 */

Module_Receive.prototype.add = function(){
    
    var self = this
        ,url = this.urlPath + '/add';
    
    $.ajax({
        url: url,
        type: "POST",
        data: {},
        success: function(string){
            $('#Tab-02').html(string);
            $('#Tab02').trigger('click');
            self._eButton();
            self._eForm();
            dLayout.hideLoadPage();
        },
        beforeSend: function(xhr) {
            dLayout.showLoadPage();
        },
        errors: function(){
            dLayout.hideLoadPage();
        }
    }); 
     return !history.pushState;
}

Module_Receive.prototype.edit = function(){
    var self = this
        ,url = this.urlPath + '/add'
        ,ReceiveID=''
        ,count = 0
        ,row
        ,data = [];
    var rows = self.obGridView.jqxGrid('selectedrowindexes');
    var selectedRecords = new Array();
    var list = '';
    for (var i = 0; i < rows.length; i++) {
        row = self.obGridView.jqxGrid('getrowdata', rows[i]);
        // list += rows[i]+'__';
        if(rows[i] >=0 && typeof(row) !='undefined'){
            count++;            
            ReceiveID = self.obGridView.jqxGrid('getrowdata', rows[i]).ReceiveID;
        }
    }
    if(count == 0){
        alert('Bạn chưa chọn một đối tượng nào để sửa!', 'Thông báo');
        return false;
    }
    if(count >1){
        alert('Bạn chỉ được chọn một đối tượng để sửa!', 'Thông báo');
        return false;
    }    
    $.ajax({
        url: url,
        type: "POST",
        data: {ReceiveID:ReceiveID},
        success: function(string){
            $('#Tab-02').html(string);
            $('#Tab02').trigger('click');
            $('#btnsave_next').hide();
            self._eButton();
            self._eForm();
            // $('#Code').attr('readonly',true); 
            dLayout.hideLoadPage();
        },
        beforeSend: function(xhr) {
            dLayout.showLoadPage();
        },
        errors: function(){
            dLayout.hideLoadPage();
        }
    }); 
     return !history.pushState;
}

Module_Receive.prototype.delete = function(){
    var self = this
        ,url = this.urlPath + '/delete'
        ,ReceiveIDs=''
        ,count = 0
        ,data = []
        ,row;
    var rows = self.obGridView.jqxGrid('selectedrowindexes')
    ,iTotal = rows.length;
    var selectedRecords = new Array();

    for (var i = 0; i < iTotal; i++) {
        row = self.obGridView.jqxGrid('getrowdata', rows[i]);
        if(row.ReceiveID){
            selectedRecords.push(rows[i]);
            count++;
            ReceiveIDs += row.ReceiveID + ',';
        }
    }
    ReceiveIDs = ReceiveIDs.substring(0,ReceiveIDs.length -1); 
    if(count == 0){
        alert('Bạn chưa chọn một đối tượng nào để xóa!', 'Thông báo');
        return false;
    }
    $.ajax({
        url: url,
        type: "POST",
        data: {ReceiveIDs:ReceiveIDs},
        success: function(rsp){
            if(rsp){
                for (var i = 0; i < selectedRecords.length; i++) {
                    self.obGridView.jqxGrid('deleterow', selectedRecords[i]);
                }
                // self.obGridView.jqxGrid("refreshdata");
                // self.obGridView.jqxGrid("clearselection");
                self.obGridView.jqxGrid('updatebounddata','filter');
            } 
            dLayout.hideLoadPage();
        },
        beforeSend: function(xhr) {
            dLayout.showLoadPage();
        },
        errors: function(){
            dLayout.hideLoadPage();
        }
    }); 
     return !history.pushState;
}
/*
 * Ghi lai
 * Creater : Truongdv
 */

Module_Receive.prototype.save = function(action){
    var self = this
        ,url = this.urlPath + '/save'
        ,xmlData = getDataXml($('form#frmUpdate'))
        ,data = $('form#frmUpdate').serializeArray();
    data.push({name:'XmlData',value:xmlData});
    $.ajax({
        url: url,
        type: "POST",
        data: data,
        // dataType: 'json',
        success: function(errors){
            errors = $.parseJSON(errors);
            document.getElementById('frmUpdate').reset();
            if(errors.length){
               alert($('label[for="Code"]').text() + ' ' + errors['0']['Code']);
            }else{
                if (action=='back') {
                    self._clearForm('frmUpdate');
                    $('#Tab01').trigger('click');
                    self.obGridView.jqxGrid('updatebounddata','filter');
                };
            }
            dLayout.hideLoadPage();
        },
        beforeSend: function(xhr) {
            dLayout.showLoadPage();
        },
        errors: function(){
            dLayout.hideLoadPage();
        }
    }); 
     return !history.pushState; // ngăn việc chuyển trang thực sự nếu trình duyệt có hỗ trợ pushState
}
Module_Receive.prototype.assign = function(){
    var self = this
        ,url = this.urlPath + '/assign'
        ,ReceiveID=''
        ,count = 0
        ,row
        ,data = [];
    var rows = self.obGridView.jqxGrid('selectedrowindexes');
    var selectedRecords = new Array();
    var list = '';
    for (var i = 0; i < rows.length; i++) {
        row = self.obGridView.jqxGrid('getrowdata', rows[i]);
        // list += rows[i]+'__';
        if(rows[i] >=0 && typeof(row) !='undefined'){
            count++;            
            ReceiveID = self.obGridView.jqxGrid('getrowdata', rows[i]).ReceiveID;
        }
    }
    if(count == 0){
        alert('Bạn chưa chọn một đối tượng nào để phân công!', 'Thông báo');
        return false;
    }
    if(count >1){
        alert('Bạn chỉ được chọn một đối tượng để phân công!', 'Thông báo');
        return false;
    }    
    $.ajax({
        url: url,
        type: "POST",
        data: {ReceiveID:ReceiveID},
        success: function(string){
            $('#Tab-02').html(string);
            $('#Tab02').trigger('click');
            self._eButton();
            self._eForm();
            dLayout.hideLoadPage();
        },
        beforeSend: function(xhr) {
            dLayout.showLoadPage();
        },
        errors: function(){
            dLayout.hideLoadPage();
        }
    }); 
     return !history.pushState;
}

Module_Receive.prototype.saveassign = function(){
    var self = this
        ,url = this.urlPath + '/saveassign'
        ,xmlData = getDataXml($('form#frmUpdate'))
        ,data = $('form#frmUpdate').serializeArray();
    data.push({name:'XmlData',value:xmlData});
    $.ajax({
        url: url,
        type: "POST",
        data: data,
        // dataType: 'json',
        success: function(errors){
            errors = $.parseJSON(errors);
            document.getElementById('frmUpdate').reset();
            self._clearForm('frmUpdate');
            $('#Tab01').trigger('click');
            self.obGridView.jqxGrid('updatebounddata','filter');
            
            dLayout.hideLoadPage();
        },
        beforeSend: function(xhr) {
            dLayout.showLoadPage();
        },
        errors: function(){
            dLayout.hideLoadPage();
        }
    }); 
     return !history.pushState; // ngăn việc chuyển trang thực sự nếu trình duyệt có hỗ trợ pushState
}

Module_Receive.prototype.process = function(){
    var self = this
        ,url = this.urlPath + '/assign'
        ,ReceiveID=''
        ,count = 0
        ,row
        ,data = [];
    var rows = self.obGridView.jqxGrid('selectedrowindexes');
    var selectedRecords = new Array();
    var list = '';
    for (var i = 0; i < rows.length; i++) {
        row = self.obGridView.jqxGrid('getrowdata', rows[i]);
        // list += rows[i]+'__';
        if(rows[i] >=0 && typeof(row) !='undefined'){
            count++;            
            ReceiveID = self.obGridView.jqxGrid('getrowdata', rows[i]).ReceiveID;
        }
    }
    if(count == 0){
        alert('Bạn chưa chọn một đối tượng nào để phân công!', 'Thông báo');
        return false;
    }
    if(count >1){
        alert('Bạn chỉ được chọn một đối tượng để phân công!', 'Thông báo');
        return false;
    }    
    $.ajax({
        url: url,
        type: "POST",
        data: {ReceiveID:ReceiveID},
        success: function(string){
            $('#Tab-02').html(string);
            $('#Tab02').trigger('click');
            self._eButton();
            self._eForm();
            dLayout.hideLoadPage();
        },
        beforeSend: function(xhr) {
            dLayout.showLoadPage();
        },
        errors: function(){
            dLayout.hideLoadPage();
        }
    }); 
     return !history.pushState;
}